package com.hyt.it.ogt.kq.common.gov.utils;

import java.util.regex.Pattern;

import com.hyt.it.ogt.kq.common.config.exception.KqException;

/**
 * @author 刘恒活
 * @since 2021/12/1 9:51
 */
public class NumberUtil {

    public static final String POSITIVE_INT_REGULAR = "[1-9][0-9]*";
    public static final Pattern POSITIVE_INT_PATTERN = Pattern.compile(POSITIVE_INT_REGULAR);

    /**
     * 判断>0的正整数
     * @param s 值
     * @return 布尔
     */
    public static boolean isPositiveInt(String s) {
        return POSITIVE_INT_PATTERN.matcher(s).matches();
    }

    /**
     * 校验字符串是否为整数
     * @param content 校验字符串
     * @param code 错误码
     * @param message 错误提示文本
     */
    public static void isIntegerVerify(String content, int code, String message) {
        if (!cn.hutool.core.util.NumberUtil.isInteger(content)) {
            throw new KqException(code, message);
        }
    }

    /**
     * 校验字符串是否大于0
     * @param content 校验字符串
     * @param code 错误码
     * @param message 错误提示文本
     */
    public static void isGreaterThanZeroVerify(String content, int code, String message) {
        int contentInteger = Integer.parseInt(content);
        if (contentInteger <= 0) {
            throw new KqException(code, message);
        }
    }

    /**
     * 判断是否为正整数
     * @param str 带判断的字符串
     * @return 是否为正整数
     */
    public static boolean isPositiveInteger(String str) {
        //判断是否为整数
        if (cn.hutool.core.util.NumberUtil.isInteger(str)) {
            //判断是否为正数
            return Integer.parseInt(str) > 0;
        }
        return false;
    }

}
